package com.mida.app.knw.service;


import com.mida.dms.mdm.dto.UserDto;
import com.mida.dms.mdm.vo.provider.BaseOrgInfoVo;
import com.mida.dms.mdm.vo.provider.BusinessUnitVo;
import com.mida.dms.mdm.vo.provider.EmployeeInfoVo;
import com.mida.tool.common.result.ListResult;

import java.util.List;

/**
 * @Description: 主数据feign接口
 * @Author: wang xiao le
 * @Date: 2021/6/19 10:00
 **/
public interface MdmService {
    ListResult<List<BaseOrgInfoVo>> findHospitalByEmployeeSoid(Long employeeSoid1);

    ListResult<List<BusinessUnitVo>> findBusinessUnitListUnderHospital(Long hospitalSoid, Long buTypeCode, String search);

    ListResult<List<EmployeeInfoVo>> findListByOrgSoid(Long orgInfoSoid, long orgInfoType, String search);

    ListResult<List<EmployeeInfoVo>> findListByBusinessUnitSoidList(String businessUnitSoidStr, String search);

    /**
     * 根据组织soid查询组织
     *
     * @param orgInfoSoid     组织soid
     * @param isIncludeDelete 是否包含已删除的数据(回显的时候需要用到)
     * @return
     */
    ListResult<BaseOrgInfoVo> findOrgByOrgInfoSoid(Long orgInfoSoid, boolean isIncludeDelete);

    /**
     * 根据soid查询业务单元
     * @param businessUnitSoid 业务单元soid
     * @param isIncludeDelete 是否包含已删除的数据(回显的时候需要用到),true-包含，false-不包含
     */
    ListResult<BusinessUnitVo> findBusinessUnitBySoid(Long businessUnitSoid, boolean isIncludeDelete);

    /**
     * 根据员工soid查询
     * @param employeeSoid 员工soid
     * @param isIncludeDelete 是否包含已删除、已停用的记录
     */
    ListResult<EmployeeInfoVo> findOneBySoid(Long employeeSoid, boolean isIncludeDelete);

    /**
     * 查询员工所属的所有业务单元
     * @param employeeSoid 员工soid
     * @param buTypeCode 业务单元类型soid 非必填 2951-临床业务单元，2954-护理业务单元，3572-医技业务单元
     */
    ListResult<List<BusinessUnitVo>> findBusinessUnitListByEmployeeSoid(Long employeeSoid, Long buTypeCode);
    /**
     * 查询当前登录用户信息
     *
     * @return UserDto
     */
    ListResult<UserDto> getLoginUserInfo();
}
